1. Field of the Invention
This invention relates to a storage area networking system, and more specifically to managing disk space in a thin-provisioned storage subsystem.
2. Description of the Related Art
Management for an allocation-on-use system, also known as thin-provisioning, provides efficient storage space management for a virtual volume by allocating a certain sized storage area for data to be written. An allocation-on-use system should have a pool for free segments to allocate segments which store data during a host's write operation.
FIG. 1 shows a diagram of a contemporary thin-provisioning write operation. Initially, before use of a storage subsystem's allocation-on-use technology, an administrator typically assigns logical devices (LDEVs), which consist of disks based on a parity group with storage allocation for their Local Block Address, for a free segment pool 127. The storage subsystem divides the LDEVs into segments for the free segment pool based on user defined or system default sized segments. Once this has occurred, when a write access occurs for a logical block address (LBA), e.g., LBA 22520 by one LBA size, a virtual device (VDEV), which has LBA space without storage allocation for the LBA space, allocates a segment (#301) from the free segment pool 127 since here, the virtual logical block address (VLBA)'s segment is currently not assigned. Then the data is written.
FIG. 2 shows a flowchart of an example process on a VDEV when the VDEV is assigned to a logical unit (LU) and a portion of the VDEV is accessed by SCSI write (6) command and other write commands. It is determined if the segment desired to be accessed is assigned based on the host request LBA, 121. If the segment is not assigned, a segment is obtained from the free segment pool, 122. If the segment is assigned or obtained, the data is written to the requested LBA minus segment's VLBA to size of data, 123.
Generally, the pool is assigned statically, e.g., an Administrator assigns a disk or a portion of a storage area on an internal storage to the pool if the pool becomes low. This may work if there is a mount of disks on storage or if a customer engineer who maintains a customer's storage subsystem can go to a customer site and install new disks, when needed. However, this method is risky in that the new segment from the disk or the portion of storage area may not be installed because the disk is limited or the customer engineer can't go to the customer site when needed.
U.S. Pat. No. 6,725,328 entitled “Automated on-line capacity expansion method for storage device as a reference” discloses details on the early stage developments of allocation-on-use technology. Further, 3 Par Data's White Paper discloses a method of allocation of free space for virtual volume (www.3pardata.com/documents/3PAR_wp_tp—01.0.pdf, P13). However, this method only allocates new disks within a subsystem to free space after the system generates an alert regarding out-of-free-space to the administrator. Thus, there is a risk of being out of free space due to the late installation of new disks.
Therefore, there is a need for a system and method for managing a free segment pool when the pool is near out of space that allows an administrator to mitigate this risk by obtaining segments from a LDEV, added storage space, or from an external storage subsystem.